﻿using EntGuayasSLA.BL;
using EntGuayasSLA.BL.Listas;
using EntGuayasSLA.BL.Listas.Criterias;
using Ext.Net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace EGuayas.Web.Licenciamiento.admin.tabs
{
    public partial class wucCorreguirDoc : ucWuc
    {
        protected String CodeFase
        {
            get
            {

                return ReadCustomConfigCodeFase(this.pnlCorr, this.ID);
            }

        }
        /// <summary>
        /// Obtener fase id seteada en evento <OnComponentAdded> del user control
        /// </summary>
        protected String FaseLicId
        {
            get
            {
               
                return ReadCustomConfigFaseLic(this.pnlCorr, this.ID);
            }

        }
        protected String EstadoFase
        {
            get
            {

                return ReadCustomConfigEstadoFase(this.pnlCorr, this.ID);
            }

        }
        protected String IdPageSession
        {
            get
            {

                return ReadCustomConfigPage(this.pnlCorr, this.ID);
            }

        }
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (X.IsAjaxRequest)
                {
                    //DESHABILITAR MODO LECTURA
                    int index = 0;
                    if (GetSessionPage.GetSession(EstadoFase) == Valores.Codigo_Estado_Fase_Finalizado)
                    {
                        index = this.gpDocumentosLicenciamiento.ColumnModel.Columns.Count - 1;
                        this.gpDocumentosLicenciamiento.RemoveColumn(index);
                     
                    }
                    //else
                    //{
                    //   index = this.gpDocumentosLicenciamiento.ColumnModel.Columns.Count - 2;
                    //   this.gpDocumentosLicenciamiento.RemoveColumn(index);
                    //}

                  
                }
                //
                GridPanel myGrid = this.gpDocumentosLicenciamiento;
                myGrid.GetStore().AutoLoadParams.Add(new Ext.Net.Parameter("query", FaseLicId));

            }
            catch (Exception ex)
            {
                RegistrarLog("wucCorreguirDoc.Page_Load" + ex);
            }
        }

        
       [DirectMethod (IDAlias = "WucCorregDoc")]
        public ArchivoLista BindDataArchivos(string action, Dictionary<string, object> extraParams)
        {
            try
            {
                if (GetSessionPage.GetSession(EstadoFase) != Valores.Codigo_Estado_Fase_Creado)
                {
                    string queryPrm = extraParams["query"].ToString();
                    ArchivoGlobalCriteria filter = ArchivoGlobalCriteria.NewArchivoGlobalCriteria();
                    filter.ExpedienteId = GetSessionPage.ExpedienteId(SessionPage.PageLicAdm);
                    filter.FaseId = GetSessionPage.GetSession(queryPrm);
                    filter.Tabla = Valores.Modulo_Archivo_Licenciamiento;
                    return ArchivoLista.GetArchivoLista(filter);
                }
                return null;
            }
            catch (Exception ex)
            {
                RegistrarLog("wucCorreguirDoc.BindDataArchivos" + ex);
            }
            return null;
           
        }
        
       
        protected void btnComentario_Click(object sender, DirectEventArgs e)
        {
            try
            {
                Guid id = Guid.Parse(e.ExtraParams["Id"]);
                Archivo objArch = Archivo.GetEditableRoot(id, Valores.Modulo_Archivo_Licenciamiento);
                objArch.SubirNuevo = e.ExtraParams["Revizar"];
                objArch.Comentarios = e.ExtraParams["Comentarios"];
                //RegistrarLog(objArch.ToString());
                objArch.Save();
                gpDocumentosLicenciamiento.GetStore().Reload();
                //X.Msg.Show(new MessageBoxConfig
                //{
                //    Buttons = MessageBox.Button.OK,
                //    Icon = MessageBox.Icon.INFO,
                //    Title = "Success",
                //    Message = string.Format("{0}<br/>", "Archivo asignado a revisión")
                //});
            }
            catch (Exception ex)
            {
                RegistrarLog("wucCorreguirDoc.btnComentario_Click" + ex);
            }

        }

        /// <summary>
        /// Agregar Estado de Fase de licenciamiento
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ValidarClick(object sender, DirectEventArgs e)
        {
            try
            {
                /*
                Guid idFaseLic = Guid.Parse(GetSessionPage.GetSession(FaseLicId));
                EstadoFaseLicenciamiento objEstadoFase = null;
                objEstadoFase = EstadoFaseLicenciamiento.GetEditableRoot(idFaseLic);
                if (objEstadoFase.FaseLicId != "")
                {
                    objEstadoFase.EstadoFase = Valores.Codigo_Estado_Exp_Lic_Revision;
                    objEstadoFase.Save();
                }
                X.Msg.Show(new MessageBoxConfig() { Message = "Documentos Revizados", Title = Titulos.Aviso, Buttons = MessageBox.Button.OK, Icon = MessageBox.Icon.INFO });
                this.btnValidarDocumentos.Disable();
               */
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }

        }
        private void SetConfigPanelDinamic(Ext.Net.Panel panel)
        {
            SetCustomConfigWucFaseLic(panel, IdPageSession, CodeFase);
        }
        [DirectMethod(IDAlias = "WucCorregDocAud")]
        public void SelFillConfig(string idFind)
        {
            try
            {
                wucOtros objOts = (wucOtros)this.uc_ots_d002.UserControls[0];
                objOts.SetCustomConfig(IdPageSession, CodeFase);
            }
            catch (Exception ex)
            {
                RegistrarLog("wucCorreguirDoc.SelFillConfig" + ex);
            }
        }
        /// <summary>
        /// Bind de comentarios de archivo
        /// </summary>
        /// <param name="action"></param>
        /// <param name="extraParams"></param>
        /// <returns></returns>
        [DirectMethod(IDAlias = "wucPlusCmt")]
        public ComentariosLista BindDataComentarios(string action, Dictionary<string, object> extraParams)
        {
            try
            {
                string queryPrm = extraParams.ContainsKey("idArchivo") ? extraParams["idArchivo"].ToString() : "";
                if (queryPrm != "")
                {
                    return ComentariosLista.GetComentariosLista(queryPrm);
                }
                return null;
            }
            catch (Exception ex)
            {
                RegistrarLog("wucOtros.BindDataAddArchivos" + ex);
            }
            return null;

        }
    }
}